package com.cmcc.xdr.entity;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Date;

public class ComposedEntity extends BaseEntity{

	private Long id;

	private Integer length;

	private String localProvince; // 新增 省份

	private String localCity;

	private String ownerProvince; // 新增 归属省份

	private String ownerCity; // 新增 归属城市

	private String roamingType; // 新增 漫游类型

	private Integer xdrType;

	private Integer rat;

	private String xdrId;

	private String imsi;

	private String imeisv;

	private String msisdn;

	private Integer procedureType;

	private Date procedureStartTime;

	private Date procedureEndTime;

	private Integer procedureStatus;

	private Integer Interface;

	private String callingNumber;

	private String calledNumber;

	private Integer xdrnumber;

	private Integer serviceType;

	private Integer responseCode;

	private Integer reasonCause;

	private Integer finishReasonCause;

	private Integer firstFailTime;

	private String firstFailNeIp;

	private String singleXdrId;

	private Integer singleProcedureType;

	private Date singleStartTime;

	private Date singleEndTime;

	private Integer singleProcedureStat;

	private String sourceNeIP;

	private Integer sourceNePort;

	private String destinationNeIP;

	private Integer destinationNePort;

	private Integer callSide;

	private Integer alertingTime;

	private Integer answerTime;

	private Integer svResult;

	private Integer svRespDelay;

	private Integer svDelay;

	private String extend1;

	private String extend2;

	private String extend3;

	private String extend4;

	private String extend5;

	private String insertDate;
	
	private String serviceScenario;
	
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Integer getLength() {
		return length;
	}

	public void setLength(Integer length) {
		this.length = length;
	}

	public String getLocalProvince() {
		return localProvince;
	}

	public void setLocalProvince(String localProvince) {
		this.localProvince = localProvince;
	}

	public String getLocalCity() {
		return localCity;
	}

	public void setLocalCity(String localCity) {
		this.localCity = localCity;
	}

	public String getOwnerProvince() {
		return ownerProvince;
	}

	public void setOwnerProvince(String ownerProvince) {
		this.ownerProvince = ownerProvince;
	}

	public String getOwnerCity() {
		return ownerCity;
	}

	public void setOwnerCity(String ownerCity) {
		this.ownerCity = ownerCity;
	}

	public String getRoamingType() {
		return roamingType;
	}

	public void setRoamingType(String roamingType) {
		this.roamingType = roamingType;
	}

	public Integer getXdrType() {
		return xdrType;
	}

	public void setXdrType(Integer xdrType) {
		this.xdrType = xdrType;
	}

	public Integer getRat() {
		return rat;
	}

	public void setRat(Integer rat) {
		this.rat = rat;
	}

	public String getXdrId() {
		return xdrId;
	}

	public void setXdrId(String xdrId) {
		this.xdrId = xdrId;
	}

	public String getImsi() {
		return imsi;
	}

	public void setImsi(String imsi) {
		this.imsi = imsi;
	}


	public String getImeisv() {
		return imeisv;
	}

	public void setImeisv(String imeisv) {
		this.imeisv = imeisv;
	}

	public String getMsisdn() {
		return msisdn;
	}

	public void setMsisdn(String msisdn) {
		this.msisdn = msisdn;
	}

	public Integer getProcedureType() {
		return procedureType;
	}

	public void setProcedureType(Integer procedureType) {
		this.procedureType = procedureType;
	}

	public Date getProcedureStartTime() {
		return procedureStartTime;
	}

	public void setProcedureStartTime(Date procedureStartTime) {
		this.procedureStartTime = procedureStartTime;
	}

	public Date getProcedureEndTime() {
		return procedureEndTime;
	}

	public void setProcedureEndTime(Date procedureEndTime) {
		this.procedureEndTime = procedureEndTime;
	}

	public void setSingleStartTime(Date singleStartTime) {
		this.singleStartTime = singleStartTime;
	}

	public void setSingleEndTime(Date singleEndTime) {
		this.singleEndTime = singleEndTime;
	}

	public Integer getProcedureStatus() {
		return procedureStatus;
	}

	public void setProcedureStatus(Integer procedureStatus) {
		this.procedureStatus = procedureStatus;
	}

	public Integer getInterface() {
		return Interface;
	}

	public void setInterface(Integer interface1) {
		Interface = interface1;
	}

	public String getCallingNumber() {
		return callingNumber;
	}

	public void setCallingNumber(String callingNumber) {
		this.callingNumber = callingNumber;
	}

	public String getCalledNumber() {
		return calledNumber;
	}

	public void setCalledNumber(String calledNumber) {
		this.calledNumber = calledNumber;
	}

	public Integer getXdrnumber() {
		return xdrnumber;
	}

	public void setXdrnumber(Integer xdrnumber) {
		this.xdrnumber = xdrnumber;
	}

	public Integer getServiceType() {
		return serviceType;
	}

	public void setServiceType(Integer serviceType) {
		this.serviceType = serviceType;
	}

	public Integer getResponseCode() {
		return responseCode;
	}

	public void setResponseCode(Integer responseCode) {
		this.responseCode = responseCode;
	}

	public Integer getReasonCause() {
		return reasonCause;
	}

	public void setReasonCause(Integer reasonCause) {
		this.reasonCause = reasonCause;
	}

	public Integer getFinishReasonCause() {
		return finishReasonCause;
	}

	public void setFinishReasonCause(Integer finishReasonCause) {
		this.finishReasonCause = finishReasonCause;
	}

	public Integer getFirstFailTime() {
		return firstFailTime;
	}

	public void setFirstFailTime(Integer firstFailTime) {
		this.firstFailTime = firstFailTime;
	}

	public String getFirstFailNeIp() {
		return firstFailNeIp;
	}

	public void setFirstFailNeIp(String firstFailNeIp) {
		this.firstFailNeIp = firstFailNeIp;
	}

	public String getSingleXdrId() {
		return singleXdrId;
	}

	public void setSingleXdrId(String singleXdrId) {
		this.singleXdrId = singleXdrId;
	}

	public Integer getSingleProcedureType() {
		return singleProcedureType;
	}

	public void setSingleProcedureType(Integer singleProcedureType) {
		this.singleProcedureType = singleProcedureType;
	}

	public Date getSingleStartTime() {
		return singleStartTime;
	}

	public Date getSingleEndTime() {
		return singleEndTime;
	}

	public Integer getSingleProcedureStat() {
		return singleProcedureStat;
	}

	public void setSingleProcedureStat(Integer singleProcedureStat) {
		this.singleProcedureStat = singleProcedureStat;
	}

	public String getSourceNeIP() {
		return sourceNeIP;
	}

	public void setSourceNeIP(String sourceNeIP) {
		this.sourceNeIP = sourceNeIP;
	}

	public Integer getSourceNePort() {
		return sourceNePort;
	}

	public void setSourceNePort(Integer sourceNePort) {
		this.sourceNePort = sourceNePort;
	}

	public String getDestinationNeIP() {
		return destinationNeIP;
	}

	public void setDestinationNeIP(String destinationNeIP) {
		this.destinationNeIP = destinationNeIP;
	}

	public Integer getDestinationNePort() {
		return destinationNePort;
	}

	public void setDestinationNePort(Integer destinationNePort) {
		this.destinationNePort = destinationNePort;
	}

	public Integer getCallSide() {
		return callSide;
	}

	public void setCallSide(Integer callSide) {
		this.callSide = callSide;
	}

	public Integer getAlertingTime() {
		return alertingTime;
	}

	public void setAlertingTime(Integer alertingTime) {
		this.alertingTime = alertingTime;
	}

	public Integer getAnswerTime() {
		return answerTime;
	}

	public void setAnswerTime(Integer answerTime) {
		this.answerTime = answerTime;
	}

	public Integer getSvResult() {
		return svResult;
	}

	public void setSvResult(Integer svResult) {
		this.svResult = svResult;
	}

	public Integer getSvRespDelay() {
		return svRespDelay;
	}

	public void setSvRespDelay(Integer svRespDelay) {
		this.svRespDelay = svRespDelay;
	}

	public Integer getSvDelay() {
		return svDelay;
	}

	public void setSvDelay(Integer svDelay) {
		this.svDelay = svDelay;
	}

	public String getExtend1() {
		return extend1;
	}

	public void setExtend1(String extend1) {
		this.extend1 = extend1;
	}

	public String getExtend2() {
		return extend2;
	}

	public void setExtend2(String extend2) {
		this.extend2 = extend2;
	}

	public String getInsertDate() {
		return insertDate;
	}

	public void setInsertDate(String insertDate) {
		this.insertDate = insertDate;
	}

	public String getExtend3() {
		return extend3;
	}

	public void setExtend3(String extend3) {
		this.extend3 = extend3;
	}

	public String getExtend4() {
		return extend4;
	}

	public void setExtend4(String extend4) {
		this.extend4 = extend4;
	}

	public String getExtend5() {
		return extend5;
	}

	public void setExtend5(String extend5) {
		this.extend5 = extend5;
	}

	public String getServiceScenario() {
		return serviceScenario;
	}

	public void setServiceScenario(String serviceScenario) {
		this.serviceScenario = serviceScenario;
	}
	
	public ComposedEntity deepClone() {
		ComposedEntity composed = null;
        try {
        	ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(baos);
            oos.writeObject(this);
 
            ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
            ObjectInputStream ois = new ObjectInputStream(bais);
            composed = (ComposedEntity) ois.readObject();
        } catch (IOException e) {
    	    e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
		return composed;
    }

}
